home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / bits / shm.h < prev    next >
C/C++ Source or Header  |  2006-05-08  |  3KB  |  103 lines

  1. /* Copyright (C) 1995,1996,1997,2000,2002,2004 Free Software Foundation, Inc.
  2.    This file is part of the GNU C Library.
  3.  
  4.    The GNU C Library is free software; you can redistribute it and/or
  5.    modify it under the terms of the GNU Lesser General Public
  6.    License as published by the Free Software Foundation; either
  7.    version 2.1 of the License, or (at your option) any later version.
  8.  
  9.    The GNU C Library is distributed in the hope that it will be useful,
  10.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  12.    Lesser General Public License for more details.
  13.  
  14.    You should have received a copy of the GNU Lesser General Public
  15.    License along with the GNU C Library; if not, write to the Free
  16.    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  17.    02111-1307 USA.  */
  18.  
  19. #ifndef _SYS_SHM_H
  20. # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
  21. #endif
  22.  
  23. #include <bits/types.h>
  24.  
  25. /* Permission flag for shmget.  */
  26. #define SHM_R        0400        /* or S_IRUGO from <linux/stat.h> */
  27. #define SHM_W        0200        /* or S_IWUGO from <linux/stat.h> */
  28.  
  29. /* Flags for `shmat'.  */
  30. #define SHM_RDONLY    010000        /* attach read-only else read-write */
  31. #define SHM_RND        020000        /* round attach address to SHMLBA */
  32. #define SHM_REMAP    040000        /* take-over region on attach */
  33.  
  34. /* Commands for `shmctl'.  */
  35. #define SHM_LOCK    11        /* lock segment (root only) */
  36. #define SHM_UNLOCK    12        /* unlock segment (root only) */
  37.  
  38. __BEGIN_DECLS
  39.  
  40. /* Segment low boundary address multiple.  */
  41. #define SHMLBA        (__getpagesize ())
  42. extern int __getpagesize (void) __THROW __attribute__ ((__const__));
  43.  
  44.  
  45. /* Type to count number of attaches.  */
  46. typedef unsigned long int shmatt_t;
  47.  
  48. /* Data structure describing a set of semaphores.  */
  49. struct shmid_ds
  50.   {
  51.     struct ipc_perm shm_perm;        /* operation permission struct */
  52.     size_t shm_segsz;            /* size of segment in bytes */
  53.     __time_t shm_atime;            /* time of last shmat() */
  54.     unsigned long int __unused1;
  55.     __time_t shm_dtime;            /* time of last shmdt() */
  56.     unsigned long int __unused2;
  57.     __time_t shm_ctime;            /* time of last change by shmctl() */
  58.     unsigned long int __unused3;
  59.     __pid_t shm_cpid;            /* pid of creator */
  60.     __pid_t shm_lpid;            /* pid of last shmop */
  61.     shmatt_t shm_nattch;        /* number of current attaches */
  62.     unsigned long int __unused4;
  63.     unsigned long int __unused5;
  64.   };
  65.  
  66. #ifdef __USE_MISC
  67.  
  68. /* ipcs ctl commands */
  69. # define SHM_STAT     13
  70. # define SHM_INFO     14
  71.  
  72. /* shm_mode upper byte flags */
  73. # define SHM_DEST    01000    /* segment will be destroyed on last detach */
  74. # define SHM_LOCKED    02000   /* segment will not be swapped */
  75. # define SHM_HUGETLB    04000    /* segment is mapped via hugetlb */
  76.  
  77. struct    shminfo
  78.   {
  79.     unsigned long int shmmax;
  80.     unsigned long int shmmin;
  81.     unsigned long int shmmni;
  82.     unsigned long int shmseg;
  83.     unsigned long int shmall;
  84.     unsigned long int __unused1;
  85.     unsigned long int __unused2;
  86.     unsigned long int __unused3;
  87.     unsigned long int __unused4;
  88.   };
  89.  
  90. struct shm_info
  91.   {
  92.     int used_ids;
  93.     unsigned long int shm_tot;    /* total allocated shm */
  94.     unsigned long int shm_rss;    /* total resident shm */
  95.     unsigned long int shm_swp;    /* total swapped shm */
  96.     unsigned long int swap_attempts;
  97.     unsigned long int swap_successes;
  98.   };
  99.  
  100. #endif /* __USE_MISC */
  101.  
  102. __END_DECLS
  103.